#include<iostream>

typedef int(*Func)(int, int);

int Add(int x,int y)
{
	return x+y;
}


int Sub(int x, int y)
{
	return x - y;
}

int Fun(Func func, int x, int y)
{
	return func(x, y);
}


int main()
{
	//int(*p)(int, int) = Func;
	//p = Func;
	/*p = Func;
	std::cout << (*p)(2, 3) << std::endl;*/
	std::cout << Fun(Add, 3, 4);
	std::cout << Fun(Sub, 3, 4);


	return 0;
}